package com.itheima.service;

import com.itheima.entity.SysUser;
import com.itheima.query.SysUserQuery;

import java.util.List;
import java.util.Map;

/**
 * 系统用户(SysUser)表服务接口
 *
 * @author guanhuaer
 * @since 2024-06-28 12:47:47
 */
public interface ISysUserService {

    /**
     * 查询所有数据
     *
     * @return 实例对象集合
     */
    List<SysUser> queryAll();

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    SysUser queryById(Long id);

    /**
     * 新增数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
    SysUser insert(SysUser sysUser);

    /**
     * 修改数据
     *
     * @param sysUser 实例对象
     * @return 实例对象
     */
    SysUser update(SysUser sysUser);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     * 高级查询和分页查询
     *
     * @param sysUserQuery 查询实例对象
     * @return 分页结果
     */
    List<SysUser> queryPage(SysUserQuery sysUserQuery);

    String code(SysUser user);

    SysUser selectUsernsmeAndEmail(String username, String email);

    /**
     * 用户注册
     * @param user
     */
    void register(SysUser user);

    void reset(SysUser user);
}
